[INFO] fetching crate perplex 0.4.1...
[INFO] testing perplex-0.4.1 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate perplex 0.4.1 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate perplex 0.4.1
[INFO] finished tweaking crates.io crate perplex 0.4.1
[INFO] tweaked toml for crates.io crate perplex 0.4.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate perplex 0.4.1 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 60 packages to latest compatible versions
[INFO] [stderr]       Adding atty v0.2.11 (available: v0.2.14)
[INFO] [stderr]       Adding bit-set v0.5.3 (available: v0.10.0)
[INFO] [stderr]       Adding clap v2.34.0 (available: v4.6.0)
[INFO] [stderr]       Adding indexmap v1.9.3 (available: v2.13.0)
[INFO] [stderr]       Adding memmap v0.6.2 (available: v0.7.0)
[INFO] [stderr]       Adding stderrlog v0.4.3 (available: v0.6.0)
[INFO] [stderr]       Adding thread_local v0.3.4 (available: v0.3.6)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded perplex-runtime v0.1.1
[INFO] [stderr]   Downloaded lazy_static v0.2.11
[INFO] [stderr]   Downloaded thread_local v0.3.4
[INFO] [stderr]   Downloaded memmap v0.6.2
[INFO] [stderr]   Downloaded stderrlog v0.4.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 768dcb531f47c966a09c1d0334780f2304852c24476670b0391eba07805b6497
[INFO] running `Command { std: "docker" "start" "-a" "768dcb531f47c966a09c1d0334780f2304852c24476670b0391eba07805b6497", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "768dcb531f47c966a09c1d0334780f2304852c24476670b0391eba07805b6497", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "768dcb531f47c966a09c1d0334780f2304852c24476670b0391eba07805b6497", kill_on_drop: false }`
[INFO] [stdout] 768dcb531f47c966a09c1d0334780f2304852c24476670b0391eba07805b6497
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7ef8565d6b6a00fadae6855b3ae868cbcf763956e25569e2f0bfd19727a24fd5
[INFO] running `Command { std: "docker" "start" "-a" "7ef8565d6b6a00fadae6855b3ae868cbcf763956e25569e2f0bfd19727a24fd5", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling lazy_static v0.2.11
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling atty v0.2.11
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling memmap v0.6.2
[INFO] [stderr]    Compiling perplex-runtime v0.1.1
[INFO] [stderr]    Compiling thread_local v0.3.4
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling stderrlog v0.4.3
[INFO] [stderr]    Compiling perplex v0.4.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backend.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let mut ta: Vec<_> = state
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/honalee.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |             let mut item_set = &mut done_list[index];
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `origin` is never read
[INFO] [stdout]    --> src/glr.rs:598:5
[INFO] [stdout]     |
[INFO] [stdout] 597 | pub struct ConflictArc {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 598 |     origin: ItemSetId,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConflictArc` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rank` and `reconverged` are never read
[INFO] [stdout]    --> src/glr.rs:636:5
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub struct ConflictNode {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 636 |     rank: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     reconverged: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConflictNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/grammar.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn rules(&self) -> RulesIter {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn rules(&self) -> RulesIter<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/grammar.rs:185:34
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter {
[INFO] [stdout]     |                                  ^^^^^                        ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter<'_> {
[INFO] [stdout]     |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/item_set.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn actions(&self) -> Actions {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/item_set.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn actions_mut(&mut self) -> ActionsMut {
[INFO] [stdout]     |                        ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn actions_mut(&mut self) -> ActionsMut<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/machine.rs:93:19
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn states(&self) -> States {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn states(&self) -> States<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/machine.rs:119:20
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn actions(&self) -> Actions {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.93s
[INFO] running `Command { std: "docker" "inspect" "7ef8565d6b6a00fadae6855b3ae868cbcf763956e25569e2f0bfd19727a24fd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ef8565d6b6a00fadae6855b3ae868cbcf763956e25569e2f0bfd19727a24fd5", kill_on_drop: false }`
[INFO] [stdout] 7ef8565d6b6a00fadae6855b3ae868cbcf763956e25569e2f0bfd19727a24fd5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1e5326205455ccb90ad43603c06703f315efccc63f5b10fae5ec4f81dfeaa064
[INFO] running `Command { std: "docker" "start" "-a" "1e5326205455ccb90ad43603c06703f315efccc63f5b10fae5ec4f81dfeaa064", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling perplex v0.4.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backend.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let mut ta: Vec<_> = state
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/honalee.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |             let mut item_set = &mut done_list[index];
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `origin` is never read
[INFO] [stdout]    --> src/glr.rs:598:5
[INFO] [stdout]     |
[INFO] [stdout] 597 | pub struct ConflictArc {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 598 |     origin: ItemSetId,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConflictArc` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rank` and `reconverged` are never read
[INFO] [stdout]    --> src/glr.rs:636:5
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub struct ConflictNode {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 636 |     rank: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     reconverged: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConflictNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/grammar.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn rules(&self) -> RulesIter {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn rules(&self) -> RulesIter<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/grammar.rs:185:34
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter {
[INFO] [stdout]     |                                  ^^^^^                        ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter<'_> {
[INFO] [stdout]     |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/item_set.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn actions(&self) -> Actions {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/item_set.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn actions_mut(&mut self) -> ActionsMut {
[INFO] [stdout]     |                        ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn actions_mut(&mut self) -> ActionsMut<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/machine.rs:93:19
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn states(&self) -> States {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn states(&self) -> States<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/machine.rs:119:20
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn actions(&self) -> Actions {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> tests/tribble1.rs:200:35
[INFO] [stdout]     |
[INFO] [stdout] 200 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 200 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 200 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 200 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 200 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> tests/tribble1.rs:209:35
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 209 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 209 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 209 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 209 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> tests/tribble1.rs:218:35
[INFO] [stdout]     |
[INFO] [stdout] 218 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 218 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 218 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 218 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 218 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> tests/tribble1.rs:227:35
[INFO] [stdout]     |
[INFO] [stdout] 227 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 227 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 227 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 227 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stdout] 227 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backend.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let mut ta: Vec<_> = state
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/honalee.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 |             let mut item_set = &mut done_list[index];
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `origin` is never read
[INFO] [stdout]    --> src/glr.rs:598:5
[INFO] [stdout]     |
[INFO] [stdout] 597 | pub struct ConflictArc {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 598 |     origin: ItemSetId,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConflictArc` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rank` and `reconverged` are never read
[INFO] [stdout]    --> src/glr.rs:636:5
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub struct ConflictNode {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 636 |     rank: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     reconverged: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConflictNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/grammar.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn rules(&self) -> RulesIter {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn rules(&self) -> RulesIter<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/grammar.rs:185:34
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter {
[INFO] [stdout]     |                                  ^^^^^                        ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter<'_> {
[INFO] [stdout]     |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/item_set.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn actions(&self) -> Actions {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/item_set.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn actions_mut(&mut self) -> ActionsMut {
[INFO] [stdout]     |                        ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn actions_mut(&mut self) -> ActionsMut<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/machine.rs:93:19
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn states(&self) -> States {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn states(&self) -> States<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/machine.rs:119:20
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn actions(&self) -> Actions {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]    --> src/parser.rs:329:34
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let res = parse_iter(seq.into_iter().cloned());
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 329 -         let res = parse_iter(seq.into_iter().cloned());
[INFO] [stdout] 329 +         let res = parse_iter(seq.iter().cloned());
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 329 -         let res = parse_iter(seq.into_iter().cloned());
[INFO] [stdout] 329 +         let res = parse_iter(IntoIterator::into_iter(seq).cloned());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.24s
[INFO] running `Command { std: "docker" "inspect" "1e5326205455ccb90ad43603c06703f315efccc63f5b10fae5ec4f81dfeaa064", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1e5326205455ccb90ad43603c06703f315efccc63f5b10fae5ec4f81dfeaa064", kill_on_drop: false }`
[INFO] [stdout] 1e5326205455ccb90ad43603c06703f315efccc63f5b10fae5ec4f81dfeaa064
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dd10bf269efe3a689c51a2aa23dd0452cc4948aa60ea6a59147795e7e25a9e56
[INFO] running `Command { std: "docker" "start" "-a" "dd10bf269efe3a689c51a2aa23dd0452cc4948aa60ea6a59147795e7e25a9e56", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/backend.rs:176:13
[INFO] [stderr]     |
[INFO] [stderr] 176 |         let mut ta: Vec<_> = state
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/honalee.rs:144:17
[INFO] [stderr]     |
[INFO] [stderr] 144 |             let mut item_set = &mut done_list[index];
[INFO] [stderr]     |                 ----^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field `origin` is never read
[INFO] [stderr]    --> src/glr.rs:598:5
[INFO] [stderr]     |
[INFO] [stderr] 597 | pub struct ConflictArc {
[INFO] [stderr]     |            ----------- field in this struct
[INFO] [stderr] 598 |     origin: ItemSetId,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ConflictArc` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rank` and `reconverged` are never read
[INFO] [stderr]    --> src/glr.rs:636:5
[INFO] [stderr]     |
[INFO] [stderr] 635 | pub struct ConflictNode {
[INFO] [stderr]     |            ------------ fields in this struct
[INFO] [stderr] 636 |     rank: usize,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 640 |     reconverged: bool,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ConflictNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/grammar.rs:180:18
[INFO] [stderr]     |
[INFO] [stderr] 180 |     pub fn rules(&self) -> RulesIter {
[INFO] [stderr]     |                  ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 180 |     pub fn rules(&self) -> RulesIter<'_> {
[INFO] [stderr]     |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/grammar.rs:185:34
[INFO] [stderr]     |
[INFO] [stderr] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter {
[INFO] [stderr]     |                                  ^^^^^                        ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 185 |     pub fn rules_for_nonterminal(&self, id: NonterminalId) -> RuleIdsIter<'_> {
[INFO] [stderr]     |                                                                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/item_set.rs:183:20
[INFO] [stderr]     |
[INFO] [stderr] 183 |     pub fn actions(&self) -> Actions {
[INFO] [stderr]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 183 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stderr]     |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/item_set.rs:188:24
[INFO] [stderr]     |
[INFO] [stderr] 188 |     pub fn actions_mut(&mut self) -> ActionsMut {
[INFO] [stderr]     |                        ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 188 |     pub fn actions_mut(&mut self) -> ActionsMut<'_> {
[INFO] [stderr]     |                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/machine.rs:93:19
[INFO] [stderr]    |
[INFO] [stderr] 93 |     pub fn states(&self) -> States {
[INFO] [stderr]    |                   ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                   |
[INFO] [stderr]    |                   the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 93 |     pub fn states(&self) -> States<'_> {
[INFO] [stderr]    |                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/machine.rs:119:20
[INFO] [stderr]     |
[INFO] [stderr] 119 |     pub fn actions(&self) -> Actions {
[INFO] [stderr]     |                    ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 119 |     pub fn actions(&self) -> Actions<'_> {
[INFO] [stderr]     |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `perplex` (lib) generated 10 warnings (run `cargo fix --lib -p perplex` to apply 8 suggestions)
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> tests/tribble1.rs:200:35
[INFO] [stderr]     |
[INFO] [stderr] 200 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr]     |                                   ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 200 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 200 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 200 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 200 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> tests/tribble1.rs:209:35
[INFO] [stderr]     |
[INFO] [stderr] 209 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr]     |                                   ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 209 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 209 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 209 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 209 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> tests/tribble1.rs:218:35
[INFO] [stderr]     |
[INFO] [stderr] 218 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr]     |                                   ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 218 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 218 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 218 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 218 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> tests/tribble1.rs:227:35
[INFO] [stderr]     |
[INFO] [stderr] 227 |     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr]     |                                   ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 227 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 227 +     let res = IterParser::new(seq.iter().cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 227 -     let res = IterParser::new(seq.into_iter().cloned()).run();
[INFO] [stderr] 227 +     let res = IterParser::new(IntoIterator::into_iter(seq).cloned()).run();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `perplex` (test "tribble1") generated 4 warnings (run `cargo fix --test "tribble1" -p perplex` to apply 4 suggestions)
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]    --> src/parser.rs:329:34
[INFO] [stderr]     |
[INFO] [stderr] 329 |         let res = parse_iter(seq.into_iter().cloned());
[INFO] [stderr]     |                                  ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]     = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 329 -         let res = parse_iter(seq.into_iter().cloned());
[INFO] [stderr] 329 +         let res = parse_iter(seq.iter().cloned());
[INFO] [stderr]     |
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 329 -         let res = parse_iter(seq.into_iter().cloned());
[INFO] [stderr] 329 +         let res = parse_iter(IntoIterator::into_iter(seq).cloned());
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `perplex` (lib test) generated 11 warnings (10 duplicates) (run `cargo fix --lib -p perplex --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/perplex-fd71d1e296fd7ccb)
[INFO] [stderr]      Running unittests src/tool.rs (/opt/rustwide/target/debug/deps/perplex-8fbba2806789dd32)
[INFO] [stderr]      Running tests/tribble1.rs (/opt/rustwide/target/debug/deps/tribble1-d72b2bed0f49f788)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test first::test::simple_terminal ... ok
[INFO] [stdout] test lexer::tests::comment_single_line ... ok
[INFO] [stdout] test first::test::epsilon_rule_is_transparent ... ok
[INFO] [stdout] test lexer::tests::comment_multiple_lines ... ok
[INFO] [stdout] test item_set::tests::left_recursion ... ok
[INFO] [stdout] test lexer::tests::comment_inline ... ok
[INFO] [stdout] test lexer::tests::tokens1 ... ok
[INFO] [stdout] test lexer::tests::quoted_escapes ... ok
[INFO] [stdout] test lexer::tests::quoted_escapes_backslash ... ok
[INFO] [stdout] test lexer::tests::tokens2 ... ok
[INFO] [stdout] test parser::tests::simple1 ... ok
[INFO] [stdout] test first::test::simple_indirection ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test simple1 ... ok
[INFO] [stdout] test simple2 ... ok
[INFO] [stdout] test simple4 ... ok
[INFO] [stdout] test simple3 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests perplex
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "dd10bf269efe3a689c51a2aa23dd0452cc4948aa60ea6a59147795e7e25a9e56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd10bf269efe3a689c51a2aa23dd0452cc4948aa60ea6a59147795e7e25a9e56", kill_on_drop: false }`
[INFO] [stdout] dd10bf269efe3a689c51a2aa23dd0452cc4948aa60ea6a59147795e7e25a9e56
